package base.file_io_demo.file_demo01;

import base.file_io_demo.io_demo01.FileUtil;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;

public class FileTest {
	
	public static void main(String[] args) {
//		long size = FileTest.testCase1();
//		System.out.println(size);
		
//		testCase2();
		testCase3();
	}

	/*
	 * 判断文件是否存在
	 * 	存在，返回文件大小
	 *  不存在：创建文件
	 */
	public static long testCase1() {
		String fileName = "mydir3/myfile.txt";
		String directory = "mydir1/mydir2";//"mydir1"+File.separator+"mydir2"统一使用'/'能够满足Window和Linux下文件路径分隔符
		File f = new File(directory, fileName);//new File(directory,fileName) ：内存中创建的一个File对象(虚拟路径)
		long size = 0;
		if(f.exists()) {
			System.out.println("文件路径："+ f.getAbsolutePath());
			System.out.println("文件大小："+ f.length());
			size = f.length();
		}else {
			System.out.println(f.getParent());
			System.out.println(System.getProperty("user.dir"));
			//f.mkdirs();//会将 myfile.txt 作为文件夹名创建。
			f.getParentFile().mkdirs();//创建抽象路径名指定的目录，包括所有必须但不存在的父目录,不包括文件名 myfile.txt.
			try {
				f.createNewFile();//创建真正的myfile.txt文件
			} catch (IOException e) {
				e.printStackTrace();
			}
			size = f.length();
		}
		return size;
	}
	
	public static void testCase2() {
		File f = new File("files/source");
		String[] names = f.list(new FilenameFilter() {
			@Override
			public boolean accept(File dir, String name) {
				if(name.endsWith("txt")) {
					return true;
				}
				return false;
			}
		});
		for (String str : names) {
			System.out.println(str);
		}
	}
	
	public static void testCase3() {
		File f = new File("mydir1/");
		FileUtil.deleteAllFiles(f);
	}
	

}
